import time
from public.action import *
from public.business import *
from public.testData import *
from selenium.webdriver.common.keys import *
from public.tools import *


testCase = "DBshop002_余额支付流程"
# 1.在首页搜索"小米",点击搜索按钮
# 实例化并打开网页
firefox = openBrowser(url)
# 登录
DBshopLogin(firefox, userName, password)
# 2.选择小米mix3,加入到购物车,点击购物车按钮
firefox.find_element_by_xpath('//input[@name="keywords"]').send_keys("小米")
firefox.find_element_by_xpath('//input[@class="search-btn iconfont"]').click()
firefox.find_element_by_xpath('//img[@alt="小米Mix3 全网通版 8GB+128GB 黑色 磁动力滑盖全面屏"]').click()
switchWindow(firefox, 2)
firefox.find_element_by_id('add_cart_submit').click()
firefox.find_element_by_link_text('去购物车结算').click()
# 3.点击"去结算"按钮
firefox.find_element_by_link_text('去结算').click()
# 4.默认地址已经别选择,点击下一步按钮
firefox.find_element_by_xpath('//input[@value="下一步"]').click()
# 5.支付方式选择"余额支付",点击确认订单
firefox.find_element_by_xpath('//input[@value="yezf"]').click()
firefox.find_element_by_xpath('//input[@value="确认订单"]').click()
# 使用变量orderNO存储订单编号
orderNO = firefox.find_element_by_xpath('(//font[@color="color:#ED145B"])[2]').text
rootPath = get_pro_rootpath()
writeFile(rootPath + '\public\order1.txt', orderNO)  # 将订单编号写入到文件中
# 6.点击马上支付，支付成功。
firefox.find_element_by_xpath('//input[@value="马上去支付"]').click()

# 7.登录后台管理系统,地址是"http://localhost/dbshop/admin",
firefox.get(urlAdmin)
DBshopLoginAdmin(firefox)
# 8.点击商品管理订单管理，找到刚才前台提交的订单，点击“编辑查看”。
DBshopEnterMenu2(firefox, '销售管理', '订单管理')
# 9.点击发货操作按钮，编辑快递单号“1000000000” 发货说明“保证正品”，点击“点击发货”按钮。
firefox.find_element_by_xpath('//input[@name="order_sn"]').send_keys(orderNO)
firefox.find_element_by_xpath('//button').click()
firefox.find_element_by_link_text('编辑查看').click()
firefox.find_element_by_link_text('发货操作').click()
firefox.find_element_by_id('express_number').send_keys(kddh)
firefox.find_element_by_id('state_info').send_keys(czsm)
firefox.find_element_by_xpath('//button[contains(.,"点击发货")]').click()

# 10.进入前台我的订单—已发货，点击“确认收货”按钮，完成订单。
firefox.get(url) #为什么不用登录直接可以收货,是不是调用的最开始的前台网页?
firefox.find_element_by_link_text('我的订单').click()
firefox.find_element_by_partial_link_text('已发货').click()
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
firefox.find_element_by_xpath('//button[text()="搜索"]').click()
firefox.find_element_by_xpath('//button[text()="确认收货"]').click()
firefox.find_element_by_xpath('//button[contains(.,"确认收货")]').click()
firefox.switch_to.alert.accept()
# 11.到dbshop前台查看我的订单"交易完成"中,检查上面的订单状态
firefox.find_element_by_partial_link_text('交易完成').click()
firefox.find_element_by_name('search_order_sn').send_keys(orderNO)
firefox.find_element_by_xpath('//button[text()="搜索"]').click()
if firefox.find_element_by_xpath('//span[text()="订单完成"]'):
    try:
        writeLog('%s测试通过' % testCase)
    except:
        writeLog('%s测试失败' % testCase)
        getPhoto(firefox)
firefox.quit()
